package com.dao;

import com.bean.Clazz;
import com.bean.ClazzWithStudent;
import com.bean.Student;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
@Mapper
public interface ClazzDao {
    /**
     *获取所有班级
     * @return java.util.List<com.bean.Clazz>
     * @author 末日流光
     * @date 2022/5/12 14:51
     */
    public List<Clazz> getClazzs();
    /**
     *
     *增加班级
     * @param clazz
     * @return int
     * @author 末日流光
     * @date 2022/5/12 14:51
     */
    public int addClazz(Clazz clazz);
    /**
     *
     * 分页查询班级信息
     * @param start
     * @param limit
     * @return java.util.List<com.bean.Clazz>
     * @author 末日流光
     * @date 2022/5/14 10:15
     */

    public List<Clazz> getClazzsByPage(@Param("start") int start,@Param("limit") int limit);
    /**
     *
     * 查询所有班级数量
     * @return int
     * @author 末日流光
     * @date 2022/5/14 10:16
     */

    public int getClazzsLength();
    /**
     *
     * 根据班级编号删除班级
     * @param id
     * @return int
     * @author 末日流光
     * @date 2022/5/14 10:16
     */

    public int delClazzById(@Param("id") int id);
    /**
     *
     * 根据班级编号查询班级信息
     * @param id
     * @return com.bean.Clazz
     * @author 末日流光
     * @date 2022/5/14 10:16
     */

    public Clazz selectClazzById(@Param("id")int id);
    /**
     *
     * 更新班级信息
     * @param clazz
     * @return int
     * @author 末日流光
     * @date 2022/5/14 10:16
     */

    public int updateClazzById(Clazz clazz);
    /**
     *
     * 根据班级名模糊查询班级
     * @param clazzName
     * @return java.util.List<com.bean.ClazzWithStudent>
     * @author 末日流光
     * @date 2022/5/14 10:17
     */

    public List<ClazzWithStudent> selectStudentByClazzName(@Param("clazzName") String clazzName);

}
